09. Solution: Boolean Expressions for Conditions

Quiz Solution: Evaluate composed boolean expressions

altitude < 1000 and speed > 100

altitude < 1000 is False, so we don't even need to check the second condition - the whole expression is False.

(propulsion == "Jet" or propulsion == "Turboprop") and speed < 300 and altitude > 20000

propulsion == "Jet" is False, and propulsion == "Turboprop" is False, so the whole expression inside the parentheses is False. It is combined with the other expressions with and, so we don't even need to check these - the whole expression must be False because the first part is False.

not (speed > 400 and propulsion == "Propeller")

To work this one out, we need to look at the inside of the parentheses first, then apply not to that. speed > 400 is False, and because we are using and this makes the whole of the expression inside the parentheses False. Applying not reverses this, so this expression is True.

(altitude > 500 and speed > 100) or not propulsion == "Propeller"

Let's start by looking inside the parentheses. altitude > 500 is True, and speed is greater than 100, so the expression inside the parenthesis is True. Whatever the value of the other expression, because they are connected by or, the whole expression will evaluate to True.

Quiz Solution: Using Truth Values of Objects

points = 174

points = 174  # use this input when submitting your answer

# set prize to default value of None
prize = None

# use the value of points to assign prize to the correct prize name
if points <= 50:
    prize = "wooden rabbit"
elif 151 <= points <= 180:
    prize = "wafer-thin mint"
elif points >= 181:
    prize = "penguin"

# use the truth value of prize to assign result to the correct message
if prize:
    result = "Congratulations! You won a {}!".format(prize)
else:
    result = "Oh dear, no prize this time."

print(result)

Output

Congratulations! You won a wafer-thin mint!

We first set prize to None and then update it only if falls into a bracket that results in winning a prize. This is accomplished in the first if statement. We then use the truth value of prize to assign result to a message based on whether a prize was won.

Remember when prize = "penguin", or any other non-empty string, then the if prize condition is True!